package com.itheima.d6_singleInstance;

/**
 * 确保一个类只有一个对象。
 *
 * 写法
 * 把类的构造器私有。
 * 定义一个类变量记住类的一个对象。
 * 定义一个类方法，返回对象。
 *
 *  * 饿汉式单例：拿对象时，对象早就创建好了。
 */
public class A {
    // 2、定义一个类变量记住类的一个对象   长见识了，定义A类类型的类变量，用来存储new A（）出来的A类型对象
    //这个类变量是类自己持有的，只会加载一次，所以也只会创建一个对象
    private static A a = new A();

    // 1、必须私有类的构造器
    private A(){

    }

    // 3、定义一个类方法返回类的对象
    public static A getObject(){
        System.out.println("饿汉式单例，早就创建好了对象a： "+a);
        return a;

        // 报错的 类方法中不可以出现this关键字的, 类方法时可以用类名调用，此时没有用对象来调这个类方法，自然this也拿不到当前对象。
        //System.out.println("this为： "+this);

    }
}
